//###################################################################################
//              表情label实现
//###################################################################################
#include "sxqlabel.h"
#include <qmessagebox.h>
#include <qdebug.h>
#include <qevent.h>
//#include <dialog.h>
//两个参数的构造函数，对应有表情的，可以触发操作
SXQLabel::SXQLabel(const QString & text, QWidget * parent )
    :QLabel(parent)
{
    bdown=true;
    bup=true;
    name=text;
    rect = geometry();//？？？？？？？？？？？？？？？？
    setMouseTracking(true);//开启鼠标跟踪事件
    setStyleSheet("border-width: 0.5px;   border-style: solid;   border-color: rgb(211, 228, 240);");//无空隙的，三色表
    QObject::connect(this, SIGNAL(seleface()), this, SLOT(ClickedBtn()));//？？？？？？？？？？？？？？？？？？？？？？？？？
    //信号发送者(例如一个按钮或标签)，发送的具体信号(例如点击)，信号的接收者(哪个按钮或标签)，信号的处理槽()
}
//一个参数的构造函数，对应空白表情，无法操作
SXQLabel::SXQLabel( QWidget * parent):QLabel(parent)
{
    rect = geometry();//？？？？？？？？？？？？？？？？？？？？？？？？？
    setMouseTracking(true);//开启鼠标跟踪事件
    setStyleSheet("border-width: 0.5px;   border-style: solid;   border-color: rgb(211, 228, 240);");

}
//析构函数
SXQLabel::~SXQLabel()
{
}
void SXQLabel::ClickedBtn()//点击表情就发射信号seleface2，从而触发
{
    qDebug()<<this->name<<endl;
    emit seleface2(this->name);//发射信号


}
void SXQLabel::mousePressEvent(QMouseEvent */*even*/)//鼠标按下时调用
{

}
void SXQLabel::mouseMoveEvent(QMouseEvent */*e*/) //鼠标移动时候调用
{
    //QPoint p= e->pos();

}

void SXQLabel::mouseReleaseEvent(QMouseEvent */*e*/)//鼠标弹起时调用
{
    if(bup)//bup=1
        emit seleface();//发射
}
//enter
void SXQLabel::enterEvent(QEvent */*e*/)//获取都鼠标时调用
{
    bup=true;
    setStyleSheet("border-width: 1px;   border-style: solid;   border-color: rgb(76, 160, 217);");

}
//leave
void SXQLabel::leaveEvent(QEvent * /*event*/)
{

    bup=false;
    setStyleSheet("border-width: 1px;   border-style: solid;   border-color: rgb(211, 228, 240);");

}
